package CONTABILIDAD_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class CON_DIFERENCIA_CAMBIO {

    private String CODIGO;
    private String CODIGO_CENTRO_COSTO;
    private String DESCRIPCION_CENTRO_COSTO;
    private String DESCRIPCION;
    private String GLOSA_DEBE;
    private String GLOSA_HABER;
    private Double DEBE_$US;
    private Double HABER_$US;
    private Double DEBE_BS;
    private Double HABER_BS;
    private Double TIPO_DE_CAMBIO_VENTA;
    private String ACRONIMO;
    private Double CUENTA_DEBE;
    private Double CUENTA_HABER;
    private Double ID_CUENTA;
    private Conexion con = null;

    public CON_DIFERENCIA_CAMBIO() {
    }

   
    public List<CON_DIFERENCIA_CAMBIO> TodosUFV(int mes, int ano) throws SQLException {
       String consulta =   "SELECT CON_CUENTA_CONTABLE.CODIGO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_HABER,\n" +
                                "CON_CUENTA_CONTABLE.DESCRIPCION,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.DEBE) DEBE,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.HABER) HABER,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.DEBE_TC) DEBE_TC,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.HABER_TC) HABER_TC,\n" +
                                "CON_MONEDA.TIPO_DE_CAMBIO_VENTA,\n" +
                                "CON_MONEDA.ACRONIMO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_HABER,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.ID_CUENTA,\n" +
                                "CON_CENTRO_COSTO.CODIGO AS CODIGO_CENTRO_COSTO,\n" +
                                "CON_CENTRO_COSTO.DESCRIPCION AS DESCRIPCION_CENTRO_COSTO\n" +
                                "FROM BROKER.CON_CUENTA_CONTABLE,\n" +
                                "BROKER.CON_COMPROBANTE,\n" +
                                "BROKER.CON_CUENTA_COMPROBANTE,\n" +
                                "BROKER.CON_TIPO_DE_CAMBIO,\n" +
                                "BROKER.CON_MONEDA,\n" +
                                "BROKER.CON_CENTRO_COSTO,\n" +
                                "BROKER.CON_COMPROBANTE_DETALLE_REC,\n" +
                                "BROKER.CON_AJUSTES\n" +
                                "WHERE (CON_CUENTA_COMPROBANTE.ID_COMPROBANTE = CON_COMPROBANTE.ID)\n" +
                                "AND (CON_TIPO_DE_CAMBIO.ID_COMPROBANTE = CON_COMPROBANTE.ID)\n" +
                                "AND (CON_CUENTA_CONTABLE.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "AND (CON_TIPO_DE_CAMBIO.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "AND (CON_COMPROBANTE_DETALLE_REC.ID_CUENTA = CON_CUENTA_CONTABLE.ID)\n" +
                                "AND (CON_CUENTA_CONTABLE.ID_AJUSTE = CON_AJUSTES.ID)\n" +
                                "AND (CON_CUENTA_COMPROBANTE.ID_CUENTA = CON_CUENTA_CONTABLE.ID(+))\n" +
                                "AND (CON_CUENTA_COMPROBANTE.ID_CENTRO_COSTO = CON_CENTRO_COSTO.ID(+))\n" +
                                "AND (CON_COMPROBANTE.ESTADO_ANULADO = 0)\n" +
                                "AND (CON_COMPROBANTE.CODIGO like('%-"+mes+"-"+ano+"'))\n" +
                                "AND (CON_MONEDA.MONEDA_BASE = 2)\n" +
                                "GROUP BY CON_CUENTA_CONTABLE.CODIGO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_HABER,\n" +
                                "CON_CUENTA_CONTABLE.DESCRIPCION,\n" +
                                "CON_MONEDA.TIPO_DE_CAMBIO_VENTA,\n" +
                                "CON_MONEDA.ACRONIMO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_HABER,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.ID_CUENTA,\n" +
                                "CON_CENTRO_COSTO.CODIGO,\n" +
                                "CON_CENTRO_COSTO.DESCRIPCION";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
    }
    public List<CON_DIFERENCIA_CAMBIO> TodosBs(int mes, int ano) throws SQLException {
        String consulta =   "SELECT CON_CUENTA_CONTABLE.CODIGO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_HABER,\n" +
                                "CON_CUENTA_CONTABLE.DESCRIPCION,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.DEBE) DEBE,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.HABER) HABER,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.DEBE_TC) DEBE_TC,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.HABER_TC) HABER_TC,\n" +
                                "CON_MONEDA.TIPO_DE_CAMBIO_VENTA,\n" +
                                "CON_MONEDA.ACRONIMO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_HABER,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.ID_CUENTA,\n" +
                                "CON_CENTRO_COSTO.CODIGO AS CODIGO_CENTRO_COSTO,\n" +
                                "CON_CENTRO_COSTO.DESCRIPCION AS DESCRIPCION_CENTRO_COSTO\n" +
                                "FROM BROKER.CON_CUENTA_CONTABLE,\n" +
                                "BROKER.CON_COMPROBANTE,\n" +
                                "BROKER.CON_CUENTA_COMPROBANTE,\n" +
                                "BROKER.CON_TIPO_DE_CAMBIO,\n" +
                                "BROKER.CON_MONEDA,\n" +
                                "BROKER.CON_CENTRO_COSTO,\n" +
                                "BROKER.CON_COMPROBANTE_DETALLE_REC,\n" +
                                "BROKER.CON_AJUSTES\n" +
                                "WHERE (CON_CUENTA_COMPROBANTE.ID_COMPROBANTE = CON_COMPROBANTE.ID)\n" +
                                "AND (CON_TIPO_DE_CAMBIO.ID_COMPROBANTE = CON_COMPROBANTE.ID)\n" +
                                "AND (CON_CUENTA_CONTABLE.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "AND (CON_TIPO_DE_CAMBIO.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "AND (CON_COMPROBANTE_DETALLE_REC.ID_CUENTA = CON_CUENTA_CONTABLE.ID)\n" +
                                "AND (CON_CUENTA_CONTABLE.ID_AJUSTE = CON_AJUSTES.ID)\n" +
                                "AND (CON_CUENTA_COMPROBANTE.ID_CUENTA = CON_CUENTA_CONTABLE.ID(+))\n" +
                                "AND (CON_CUENTA_COMPROBANTE.ID_CENTRO_COSTO = CON_CENTRO_COSTO.ID(+))\n" +
                                "AND (CON_COMPROBANTE.ESTADO_ANULADO = 0)\n" +
                                "AND (CON_COMPROBANTE.CODIGO like('%-"+mes+"-"+ano+"'))\n" +
                                "AND (CON_MONEDA.MONEDA_BASE = 0)\n" +
                                "GROUP BY CON_CUENTA_CONTABLE.CODIGO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_HABER,\n" +
                                "CON_CUENTA_CONTABLE.DESCRIPCION,\n" +
                                "CON_MONEDA.TIPO_DE_CAMBIO_VENTA,\n" +
                                "CON_MONEDA.ACRONIMO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_HABER,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.ID_CUENTA,\n" +
                                "CON_CENTRO_COSTO.CODIGO,\n" +
                                "CON_CENTRO_COSTO.DESCRIPCION";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
    }
    public List<CON_DIFERENCIA_CAMBIO> TodosOtras(int mes, int ano) throws SQLException {
        String consulta =   "SELECT CON_CUENTA_CONTABLE.CODIGO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_HABER,\n" +
                                "CON_CUENTA_CONTABLE.DESCRIPCION,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.DEBE) DEBE,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.HABER) HABER,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.DEBE_TC) DEBE_TC,\n" +
                                "SUM (CON_CUENTA_COMPROBANTE.HABER_TC) HABER_TC,\n" +
                                "CON_MONEDA.TIPO_DE_CAMBIO_VENTA,\n" +
                                "CON_MONEDA.ACRONIMO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_HABER,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.ID_CUENTA,\n" +
                                "CON_CENTRO_COSTO.CODIGO AS CODIGO_CENTRO_COSTO,\n" +
                                "CON_CENTRO_COSTO.DESCRIPCION AS DESCRIPCION_CENTRO_COSTO\n" +
                                "FROM BROKER.CON_CUENTA_CONTABLE,\n" +
                                "BROKER.CON_COMPROBANTE,\n" +
                                "BROKER.CON_CUENTA_COMPROBANTE,\n" +
                                "BROKER.CON_TIPO_DE_CAMBIO,\n" +
                                "BROKER.CON_MONEDA,\n" +
                                "BROKER.CON_CENTRO_COSTO,\n" +
                                "BROKER.CON_COMPROBANTE_DETALLE_REC,\n" +
                                "BROKER.CON_AJUSTES\n" +
                                "WHERE (CON_CUENTA_COMPROBANTE.ID_COMPROBANTE = CON_COMPROBANTE.ID)\n" +
                                "AND (CON_TIPO_DE_CAMBIO.ID_COMPROBANTE = CON_COMPROBANTE.ID)\n" +
                                "AND (CON_CUENTA_CONTABLE.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "AND (CON_TIPO_DE_CAMBIO.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "AND (CON_COMPROBANTE_DETALLE_REC.ID_CUENTA = CON_CUENTA_CONTABLE.ID)\n" +
                                "AND (CON_CUENTA_CONTABLE.ID_AJUSTE = CON_AJUSTES.ID)\n" +
                                "AND (CON_CUENTA_COMPROBANTE.ID_CUENTA = CON_CUENTA_CONTABLE.ID(+))\n" +
                                "AND (CON_CUENTA_COMPROBANTE.ID_CENTRO_COSTO = CON_CENTRO_COSTO.ID(+))\n" +
                                "AND (CON_COMPROBANTE.ESTADO_ANULADO = 0)\n" +
                                "AND (CON_COMPROBANTE.CODIGO like('%-"+mes+"-"+ano+"'))\n" +
                                "AND ((CON_MONEDA.MONEDA_BASE = 3)\n" +
                                "OR (CON_MONEDA.MONEDA_BASE = 1))\n" +
                                "GROUP BY CON_CUENTA_CONTABLE.CODIGO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.GLOSA_HABER,\n" +
                                "CON_CUENTA_CONTABLE.DESCRIPCION,\n" +
                                "CON_MONEDA.TIPO_DE_CAMBIO_VENTA,\n" +
                                "CON_MONEDA.ACRONIMO,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_DEBE,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.CUENTA_HABER,\n" +
                                "CON_COMPROBANTE_DETALLE_REC.ID_CUENTA,\n" +
                                "CON_CENTRO_COSTO.CODIGO,\n" +
                                "CON_CENTRO_COSTO.DESCRIPCION";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
    }

    public List<CON_DIFERENCIA_CAMBIO> Cargar(ResultSet rs) throws SQLException {
            List<CON_DIFERENCIA_CAMBIO> lista = new ArrayList<CON_DIFERENCIA_CAMBIO>();
            while (rs.next()) {
                CON_DIFERENCIA_CAMBIO objeto = new CON_DIFERENCIA_CAMBIO();
                objeto.setCODIGO(rs.getString("CODIGO"));
                objeto.setCODIGO_CENTRO_COSTO(rs.getString("CODIGO_CENTRO_COSTO"));
                objeto.setGLOSA_DEBE(rs.getString("GLOSA_DEBE"));
                objeto.setGLOSA_HABER(rs.getString("GLOSA_HABER"));
                objeto.setDESCRIPCION(rs.getString("DESCRIPCION"));
                objeto.setDESCRIPCION_CENTRO_COSTO(rs.getString("DESCRIPCION_CENTRO_COSTO"));
                objeto.setDEBE_$US(Double.parseDouble(rs.getString("DEBE")));
                objeto.setHABER_$US(Double.parseDouble(rs.getString("HABER")));
                objeto.setDEBE_BS(Double.parseDouble(rs.getString("DEBE_TC")));
                objeto.setHABER_BS(Double.parseDouble(rs.getString("HABER_TC")));
                objeto.setTIPO_DE_CAMBIO_VENTA(rs.getDouble("TIPO_DE_CAMBIO_VENTA"));
                objeto.setACRONIMO(rs.getString("ACRONIMO"));
                objeto.setCUENTA_DEBE(rs.getDouble("CUENTA_DEBE"));
                objeto.setCUENTA_HABER(rs.getDouble("CUENTA_HABER"));
                objeto.setID_CUENTA(rs.getDouble("ID_CUENTA"));
                objeto.setCon(con);
                lista.add(objeto);
            }
            return lista;
    }

    public String getCODIGO() {
        return CODIGO;
    }

    public void setCODIGO(String CODIGO) {
        this.CODIGO = CODIGO;
    }

    public String getCODIGO_CENTRO_COSTO() {
        return CODIGO_CENTRO_COSTO;
    }

    public void setCODIGO_CENTRO_COSTO(String CODIGO_CENTRO_COSTO) {
        this.CODIGO_CENTRO_COSTO = CODIGO_CENTRO_COSTO;
    }

    public String getDESCRIPCION_CENTRO_COSTO() {
        return DESCRIPCION_CENTRO_COSTO;
    }

    public void setDESCRIPCION_CENTRO_COSTO(String DESCRIPCION_CENTRO_COSTO) {
        this.DESCRIPCION_CENTRO_COSTO = DESCRIPCION_CENTRO_COSTO;
    }

    public String getDESCRIPCION() {
        return DESCRIPCION;
    }

    public void setDESCRIPCION(String DESCRIPCION) {
        this.DESCRIPCION = DESCRIPCION;
    }

    public String getGLOSA_DEBE() {
        return GLOSA_DEBE;
    }

    public void setGLOSA_DEBE(String GLOSA_DEBE) {
        this.GLOSA_DEBE = GLOSA_DEBE;
    }

    public String getGLOSA_HABER() {
        return GLOSA_HABER;
    }

    public void setGLOSA_HABER(String GLOSA_HABER) {
        this.GLOSA_HABER = GLOSA_HABER;
    }

    public Double getDEBE_$US() {
        return DEBE_$US;
    }

    public void setDEBE_$US(Double DEBE_$US) {
        this.DEBE_$US = DEBE_$US;
    }

    public Double getHABER_$US() {
        return HABER_$US;
    }

    public void setHABER_$US(Double HABER_$US) {
        this.HABER_$US = HABER_$US;
    }

    public Double getDEBE_BS() {
        return DEBE_BS;
    }

    public void setDEBE_BS(Double DEBE_BS) {
        this.DEBE_BS = DEBE_BS;
    }

    public Double getHABER_BS() {
        return HABER_BS;
    }

    public void setHABER_BS(Double HABER_BS) {
        this.HABER_BS = HABER_BS;
    }

    public Double getTIPO_DE_CAMBIO_VENTA() {
        return TIPO_DE_CAMBIO_VENTA;
    }

    public void setTIPO_DE_CAMBIO_VENTA(Double TIPO_DE_CAMBIO_VENTA) {
        this.TIPO_DE_CAMBIO_VENTA = TIPO_DE_CAMBIO_VENTA;
    }

    public String getACRONIMO() {
        return ACRONIMO;
    }

    public void setACRONIMO(String ACRONIMO) {
        this.ACRONIMO = ACRONIMO;
    }

    public Double getCUENTA_DEBE() {
        return CUENTA_DEBE;
    }

    public void setCUENTA_DEBE(Double CUENTA_DEBE) {
        this.CUENTA_DEBE = CUENTA_DEBE;
    }

    public Double getCUENTA_HABER() {
        return CUENTA_HABER;
    }

    public void setCUENTA_HABER(Double CUENTA_HABER) {
        this.CUENTA_HABER = CUENTA_HABER;
    }

    public Double getID_CUENTA() {
        return ID_CUENTA;
    }

    public void setID_CUENTA(Double ID_CUENTA) {
        this.ID_CUENTA = ID_CUENTA;
    }

   

    public Conexion getCon() {
        return con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }        
    
}
